package com.atguigu.stgy.common.converter;

import com.atguigu.stgy.model.enums.LabelTypeEnum;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;

/*
    Converter:是springmvc提供的 转换器接口
        可以将接收到的请求参数转为指定类型的数据
        泛型1:表示controller接口中要接受的参数类型
        泛型2：表示接受到的参数要转换的类型

         convert方法：编写将泛型1数据转为泛型2的业务

      Converter<String, LabelTypeEnum>定义的转换器 只能处理LabelTypeEnum类型的枚举类对象的转换
      如果其他接口中又定义了枚举类，仍需要创建转换器


      创建通用转换器：
        1、创建接受参数类型的枚举类的父接口

        2、再创建处理父接口类型转换的处理器
 */
//@Component
//public class LabelTyepEnumConverter implements Converter<String, LabelTypeEnum> {
//    //String source：表示接受到的参数
//    @Override
//    public LabelTypeEnum convert(String source) {
//        //如果传入1  返回APARTMENT枚举对象
//        //如果是2  返回ROOM枚举对象
////        LabelTypeEnum.values() 获取枚举类对象集合
//        for (LabelTypeEnum typeEnum : LabelTypeEnum.values()) {
//            if(typeEnum.getType().toString().equals(source)){
//                return typeEnum;
//            }
//        }
//        throw new IllegalArgumentException("标签类型不存在");
//    }
//}
